#ifndef __OCPP_Cesium_Transforms_H__
#define __OCPP_Cesium_Transforms_H__

#include "CesiumMath.h"
#include "Matrix4.h"
#include "Ellipsoid.h"

namespace OCPP
{
	namespace Cesium
	{
		class _CesiumExport Transforms
		{
		public:
			static void init();
			/**
			 * Generates a function that computes a 4x4 transformation matrix from a reference frame
			 * centered at the provided origin to the provided ellipsoid's fixed reference frame.
			 * @param  {string} firstAxis  name of the first axis of the local reference frame. Must be
			 *  'east', 'north', 'up', 'west', 'south' or 'down'.
			 * @param  {string} secondAxis  name of the second axis of the local reference frame. Must be
			 *  'east', 'north', 'up', 'west', 'south' or 'down'.
			 * @return {Transforms.LocalFrameToFixedFrame} The function that will computes a
			 * 4x4 transformation matrix from a reference frame, with first axis and second axis compliant with the parameters,
			 */
			static Matrix4 eastNorthUpToFixedFrame(
				Cartesian3 cartesian3,
				Ellipsoid ellipsoid = Ellipsoid::WGS84);
		};
	}
}

#endif

